谁能把这个程序修改一下下呀`..

来源:百度知道 编辑:UC知道 时间:2024/07/06 17:51:31
#include "stdio.h"
void main()
{
int a,b;
long c=1,d=0;
scanf("%d",&b);
for(a=1;a<=b;a++)
{
c*=a;
d+=c;
}
printf("%ld\n",d);

}
这是一个1!+2!+3!+... ...+n!的和.
我现在想改动一下 让它变成1!+3!+5!+7!+.....+n!怎么改呀.. 教教我.`
都不对呀!!!!
把a++改成a+=2,那么下一步c*=a就不对了. 这是一个求阶乘的,改了以后比如7的阶乘就变成1*3*5*7了...而不是正常的阶乘结果.. 在继续下面的那就更错了...
最底楼的用我定义的ABCD可好呀... 你写的那几个字母有点不明白具体指那个。
晕. 还是不行. 输入3的时候是7. 但是输入5的时候就是727了。..

先对n的值进行一下遴选
if((n%2)==0)cout<<"无解";
else{...}
你会编写1!+2!+3!+... ...+n!的和了

不好意思,没仔细看代码
你看这样吧,你改动大一点
for(int i=1;i<=n;i+=2){
for(a=1;a<=i;a++)
c*=a;
d+=c;
a=1;}

大括号写错了

#include "stdio.h"
void main()
{
int a,b;
long c=1,d=0;
scanf("%d",&b);
if((b%2)==0)cout<<"无解";
else{
for(int i=1;i<=b;i+=2){
for(a=1;a<=i;a++)
c*=a;
d+=c;
c=1;//我太粗心了,见谅
a=1;}}
printf("%ld\n",d);

}

#include "stdio.h"
void main()
{
int a,b;
long c=1,d=0;
scanf("%d",&b);
for(a=1;a<=b;a++)
{
a++;
c*=a;
d+=c;
}
printf("%ld\n",d);

}

..a +=2 就可以了

#include "stdio.h"
void main()
{
int a,b;
long c=1,d=